tayga: refresh patch
authorGoetz Goerisch <[email protected]>
Tue, 22 Jul 2025 18:01:44 +0000 (20:01 +0200)
committerJosef Schlehofer <[email protected]>
Thu, 24 Jul 2025 13:33:18 +0000 (15:33 +0200)
Refreshed patch
 - 002-bigendian_wrong_checksum.patch

Signed-off-by: Goetz Goerisch <[email protected]>
ipv6/tayga/patches/002-bigendian_wrong_checksum.patch

index d8deac3a29a6fbee28415de312601a47a56ba619..9bec5f24658adc826350a2ff451c12175b4e632b 100644 (file)
@@ -1,8 +1,8 @@
 --- a/nat64.c
 +++ b/nat64.c
-@@ -19,6 +19,11 @@
- extern struct config *gcfg;
+@@ -129,6 +129,11 @@ static void log_pkt6(int err, struct pkt
+               type, saddr, daddr, (p->header_len + p->data_len),p->data_proto,msg);
+ }
  
 +static uint16_t checksum_extend_byte(uint8_t b)
 +{
@@ -12,7 +12,7 @@
  static uint16_t ip_checksum(void *d, int c)
  {
        uint32_t sum = 0xffff;
-@@ -30,7 +35,7 @@ static uint16_t ip_checksum(void *d, int
+@@ -140,7 +145,7 @@ static uint16_t ip_checksum(void *d, int
        }
  
        if (c)
@@ -21,7 +21,7 @@
  
        while (sum > 0xffff)
                sum = (sum & 0xffff) + (sum >> 16);
-@@ -180,10 +185,12 @@ static int xlate_payload_4to6(struct pkt
+@@ -296,10 +301,12 @@ static int xlate_payload_4to6(struct pkt
                cksum = ones_add(p->icmp->cksum, cksum);
                if (p->icmp->type == 8) {
                        p->icmp->type = 128;
@@ -34,9 +34,9 @@
 +                      p->icmp->cksum = ones_add(cksum,
 +                                              ~checksum_extend_byte(129 - 0));
                }
-               return 0;
-       case 17:
-@@ -668,10 +675,12 @@ static int xlate_payload_6to4(struct pkt
+               return ERROR_NONE;
+       /* UDP */
+@@ -892,10 +899,12 @@ static int xlate_payload_6to4(struct pkt
                cksum = ones_add(p->icmp->cksum, cksum);
                if (p->icmp->type == 128) {
                        p->icmp->type = 8;
@@ -49,5 +49,5 @@
 +                      p->icmp->cksum = ones_add(cksum,
 +                                              checksum_extend_byte(129 - 0));
                }
-               return 0;
-       case 17:
+               return ERROR_NONE;
+       /* UDP */